home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / gnustuff / tos / futils / futils~1 / src / file31s.zoo / file3.1 / readme < prev   
Encoding:
Text File  |  1991-10-17  |  5.7 KB  |  117 lines

  1. These are the GNU file management utilities.  Most of these programs
  2. have significant advantages over their Unix counterparts, such as
  3. greater speed, additional options, and fewer arbitrary limits.
  4.  
  5. The programs
  6. cat cmp cut expand head paste split tac tail unexpand
  7. which used to be part of the fileutils are now part of the textutils.
  8.  
  9. To compile these programs:
  10.  
  11. 1.  At the top level (the directory this README is in), type
  12. `./configure'.  This shell script attempts to guess correct values for
  13. various system-dependent variables used during compilation, and
  14. creates the Makefiles.  This takes minute or two.
  15.  
  16. If your system requires unusual options for compilation or linking
  17. that `configure' doesn't know about, you can give `configure' initial
  18. values for variables by setting them in the environment; in
  19. Bourne-compatible shells, you can do that on the command line like
  20. this:
  21. $ CC='gcc -traditional' LIBS=-lposix ./configure
  22.  
  23. 2.  If you want to change the directories where the programs and their
  24. documentation will be installed, or the optimization options, edit
  25. `Makefile' and change those values.  If you have an unusual system
  26. that needs special compilation options that `configure' doesn't know
  27. about, and you didn't pass them in the environment when running
  28. `configure', you should add them to `Makefile' now.  Alternately,
  29. teach `configure' how to figure out that it is being run on a system
  30. where they are needed, and mail the diffs to the address listed at the
  31. end of this file so we can include them in the next release.
  32.  
  33. 3.  In the top-level directory, type `make'.  You don't need to
  34. otherwise touch the Makefiles in the subdirectories or use them
  35. directly.
  36.  
  37. 4.  If your system needs to link with -lPW to get alloca, but has
  38. rename in the C library (so RENAME_MISSING is not used), -lPW might
  39. give you an incorrect version of rename.  On HP-UX this manifests
  40. itself as an undefined data symbol called "Error" when linking cp, ln,
  41. and mv.  If this happens, use `ar x' to extract alloca.o from libPW.a
  42. and `ar rc' to put it in a library liballoca.a, and put that in LIBS
  43. instead of -lPW.  This problem does not occur when using gcc, which
  44. has alloca built in.
  45.  
  46. 5.  If the programs compile successfully, type `make install' to
  47. install them and their documentation.
  48.  
  49. 6.  After you have installed the programs and documentation, you can
  50. remove the binaries from the source directories by typing `make
  51. clean'.  Type `make realclean' if you also want to remove the
  52. Makefiles that `configure' created, for instance if you are going to
  53. recompile the utilities next on another type of machine.
  54.  
  55.  
  56. Other things to note:
  57.  
  58. The fileutils are intended to be POSIX compliant (with BSD and other
  59. extensions), like the rest of the GNU system.  They are not all quite
  60. there yet; however, the POSIX shell and utilities standard (1003.2)
  61. has not been finalized, either.  They presently don't support
  62. internationalization features.
  63.  
  64. The comprehensive Texinfo documentation for these programs is not
  65. finished yet, and needs to be rewritten.  In the interim, the skeletal
  66. man pages provided with this distribution will have to serve.
  67.  
  68. The ls, dir, and vdir commands are all separate executables instead of
  69. one program that checks argv[0] because people often rename these
  70. programs to things like gls, gnuls, l, etc., and renaming a program
  71. file shouldn't affect how it operates, so that people can get the
  72. behavior they want with whatever name they want.
  73.  
  74. The GNU ls with the -s option, and at the top of long listings of
  75. directories, reports file sizes in units of 512 bytes by default, as
  76. required by POSIX.  The GNU du does the same thing, also for POSIX.
  77. The GNU ls and du both have a -k option to make them report sizes in
  78. kilobytes instead.
  79.  
  80. A warning about du for HP-UX users: GNU du (and I'm sure BSD-derived
  81. versions) counts the st_blocks field of the `struct stat' for each
  82. file.  (It's best to use st_blocks where available, instead of
  83. st_size, because otherwise you get wildly wrong answers for sparse
  84. files like coredumps, and it counts indirect blocks.)  Chris Torek in
  85. a comp.unix.wizards posting stated that in 4BSD st_blocks is always
  86. counted in 512 byte blocks.  On HP-UX filesystems, however, st_blocks
  87. is counted in 1024 byte blocks.  When GNU du is compiled on HP-UX, it
  88. assumes that st_blocks counts 1024-byte blocks, because locally
  89. mounted filesystems do; so to get the number of 512-byte blocks, it
  90. doubles the st_blocks value.  (The HP-UX du seems to do the same
  91. thing.)  This gives the correct numbers on HP-UX filesystems.  But for
  92. 4BSD filesystems mounted on HP-UX machines, it gives twice the correct
  93. numbers; similarly, for HP-UX filesystems, du on 4BSD machines gives
  94. half the correct numbers.  GNU ls with the -s option has the same
  95. problem.  I know of no way to determine for a given filesystem or file
  96. what units st_blocks is measured in.  The f_bsize element of `struct
  97. statfs' does not work, because its meaning varies between different
  98. versions of Unix.
  99.  
  100. The GNU cp, mv, and ln commands can make backups of files that they
  101. are about to overwrite or remove.  Backup file names will end up being
  102. the same as the original file names for files that are at the system's
  103. filename length limit; when that happens, the new file will silently
  104. replace the backup file that was just made.  This happens with GNU
  105. Emacs, also.  I am not aware of a clean, portable solution to this
  106. problem.
  107.  
  108. Special thanks to Jim Meyering, Brian Matthews, Bruce Evans, and Karl
  109. Berry for help with debugging and porting these programs.
  110.  
  111. Although these programs have no `-V' or `+version' option, you can
  112. check which version you have by using `grep' or `strings -' on the
  113. binaries, e.g., `grep fileutils /usr/local/bin/ls'.
  114.  
  115. Mail suggestions and bug reports for these programs to
  116. bug-gnu-utils@prep.ai.mit.edu.
  117.